﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Koopakiller.Numerics.Addins
{
    /// <summary>
    /// Wird implementiert, wenn eine Klasse einen Funktionsparameter in einer Zeichenfolge darstellt.
    /// </summary>
    public interface IFunctionObject
    {
        /// <summary>
        /// Berechnet das Ergebnis.
        /// </summary>
        /// <param name="parameters">Die benötigten Parameter.</param>
        /// <returns>Das Ergebnis der Funktion.</returns>
        double Calculate(params double[] parameters);
        /// <summary>
        /// Ruft die Anzahl benötigter Parameter ab.
        /// </summary>
        int ParameterCount { get; }
        /// <summary>
        /// Ruft den Funktionsbezeichner ab.
        /// </summary>
        string FunctionName { get; }
    }
}
